package com.kid.kidliving.commodity.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Data;

/**
 * 商品分类表
 * 
 * @author kid
 * @email kid@gmail.com
 * @date 2025-09-07 17:15:32
 */
@Data
@TableName("commodity_category")
public class CategoryEntity implements Serializable {
	private static final long serialVersionUID = 1L;

	/**
	 * id
	 */
	@TableId
	private Long id;
	/**
	 * 名称
	 */
	private String name;
	/**
	 * 父分类 id
	 */
	private Long parentId;
	/**
	 * 层级
	 */
	private Integer catLevel;

	/**
	 * mybatis-plus逻辑删除
	 * 如果没有在application.yml中配置，则可以配置为
	 * @TableLogic(value = "1",delval = "0")
	 * 0 不显示，1 显示]
	 */
	@TableLogic
	private Integer isShow;
	/**
	 * 排序
	 */
	private Integer sort;
	/**
	 * 图标
	 */
	private String icon;
	/**
	 * 统计单位
	 */
	private String proUnit;
	/**
	 * 商品数量
	 */
	private Integer proCount;



	/**
	 * 增加属性childrenCategories,表示某项的子分类的集合
	 * 但该项不是数据库表项字段--@TableField(exist = false)
	 * @JsonInclude(JsonInclude.Include.NON_EMPTY)表示,如果childrenCategories为空数组，就不需要返回
	 */

	@JsonInclude(JsonInclude.Include.NON_EMPTY)
	@TableField(exist = false)
	private List<CategoryEntity> childrenCategories;

}
